package com.itheima;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;

/**
 * 2025/5/21 11:31
 * 案例-投票统计
 */
public class MapPractice {
    public static void main(String[] args) {
        Map<String,String> data  = new HashMap<>();
        data.put("小王","A");
        data.put("小李","B");
        data.put("小张","C");
        data.put("小赵","D");
        data.put("小钱","A");
        data.put("小孙","B");
        data.put("小王2","C");
        data.put("小李2","A");
        data.put("小李3","B");
        data.put("小李4","C");
        data.put("小李5","D");
        data.put("小王6","C");
        data.put("小王7","A");
        data.put("小李8","B");
        data.put("小李9","C");
        data.put("小李10","D");
        data.put("小王11","C");
        data.put("小李12","A");
        data.put("小李13","B");
        data.put("小李14","C");
        data.put("小李15","D");
        data.put("小王16","C");
        //调用方法统计
        count(data);


    }

    public static void count(Map<String,String> data){
        /**
         * 1.创建一个新的Map集合，用来存储统计投票结果
         * 2. 遍历data集合（key--value）
         * ---3.将value（A）拿出来，将value（A）当做key存储到新的集合中，
         * ---4.如果A已经存在了，那么将A对应的值+1,
         * ---5. 如果A不存在，那么直接将A---1，存储到新map中即可
         * 6.遍历新map集合，打印结果
         */
        Map<String,Integer> resultMap  = new HashMap<>();
        data.forEach((k,v)->{
//         ---3.将value（A）拿出来，将value（A）当做key存储到新的集合中，
//         ---4.如果A已经存在了，那么将A对应的值+1,
//         ---5. 如果A不存在，那么直接将A---1，存储到新map中即可
            //判断v是否已经在resultMap中存在了
            boolean containsKey = resultMap.containsKey(v);
            if (containsKey){//存在
                //将老的值取出来+1，重新存进去
                Integer oldCount = resultMap.get(v);
                resultMap.put(v,oldCount+1);
            }else {//不存在
                resultMap.put(v,1);
            }
        });
        //6. 遍历新map集合，打印结果
        resultMap.forEach((k,v)->{
            System.out.println(k+"-->"+v);
        });
    }

}
